package com.noahplat.person.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName: PersonDevice
 * @Description: 人员和设备关联关系表
 * @Author 李景星
 * @Date 2021/3/3
 * @Version 1.0
 */
@Data
@Table(name = "tb_person_device")
public class PersonDevice implements Serializable {

    @Id
    @KeySql(useGeneratedKeys = true)
    private Long id;    //主键

    @NotEmpty(message = "人员ID不能为空")
    private Long pid;   //人员ID

    @NotEmpty(message = "设备唯一标识号不能为空")
    @Length(max = 20, message = "设备唯一标识长度不符合要求")
    private String imei;    //设备唯一标识号

    @NotEmpty(message = "设备型号不能为空")
    @Length(max = 20, message = "设备型号长度不符合要求")
    private String model;    //设备型号

    @NotEmpty(message = "设备类型不能为空")
    @Length(max = 20, message = "设备类型长度不符合要求")
    private String type;    //设备类型

    @Column(name = "default_flag")
    @NotEmpty(message = "默认设备标识不能为空")
    @Length(max = 1, message = "默认设备标识长度不符合要求")
    private String defaultFlag; //是否为默认标识，Y为默认标识， N为非默认

    @Column(name = "sup_location")
    @NotEmpty(message = "定位标识不能为空")
    @Length(max = 1, message = "定位标识长度不符合要求")
    private String supLocation;//是否支持定位 Y支持  N不支持

    @Column(name = "sup_temp")
    @NotEmpty(message = "体温标识不能为空")
    @Length(max = 1, message = "体温标识长度不符合要求")
    private String supTemp;//是否支持体温监测 Y支持  N不支持

    @Column(name = "sup_heart")
    @NotEmpty(message = "心率标识不能为空")
    @Length(max = 1, message = "心率标识长度不符合要求")
    private String supHeart;//是否支持心率测量 Y支持  N不支持

    @Column(name = "sup_blood")
    @NotEmpty(message = "血压标识不能为空")
    @Length(max = 1, message = "血压标识长度不符合要求")
    private String supBlood;//是否支持血压监测 Y支持  N不支持

    @Column(name = "sup_sleep")
    @NotEmpty(message = "睡眠标识不能为空")
    @Length(max = 1, message = "睡眠标识长度不符合要求")
    private String supSleep;//是否支持睡眠监测 Y支持  N不支持

    @Column(name = "sup_step")
    @NotEmpty(message = "计步标识不能为空")
    @Length(max = 1, message = "计步标识长度不符合要求")
    private String supStep;//是否支持计步 Y支持  N不支持

    @Column(name = "sup_oxygen")
    @NotEmpty(message = "血氧标识不能为空")
    @Length(max = 1, message = "血氧标识长度不符合要求")
    private String supOxygen;//是否支持睡眠监测 Y支持  N不支持

    @Column(name = "create_time")
    @NotEmpty(message = "创建时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;   //创建时间

    @NotEmpty(message = "设备注册ID不能为空")
    @Length(max = 32, message = "设备注册ID长度不符合要求")
    private String registrationid;  //设备注册id

    @Column(name = "dev_type")
    @NotEmpty(message = "设备类型不能为空")
    @Length(max = 1, message = "设备类型长度不符合要求")
    private String devType; //设备类型 0-安卓   1-IOS

    @NotEmpty(message = "设备型号示例图片不能为空")
    @Length(max = 128, message = "设备型号示例图片长度不符")
    private String image;   //设备型号示例图片
}
